package com.jiadakeji.ppm.modules.business.dao;

import com.jiadakeji.ppm.common.persistence.CrudDao;
import com.jiadakeji.ppm.common.persistence.annotation.MyBatisDao;
import com.jiadakeji.ppm.modules.business.entity.Building;
import com.jiadakeji.ppm.modules.business.entity.DTO.*;
import com.jiadakeji.ppm.modules.business.entity.FeeYear;
import com.jiadakeji.ppm.modules.business.entity.Room;

import java.util.List;


@MyBatisDao
public interface ReportDao extends CrudDao<ReportDao> {

    List<ReportCommunityDTO> sumByCommunity(ReportCommunityDTO reportCommunityDTO);

    List<ReportCommunityDTO> sumByCommunityByDate(ReportCommunityDTO reportCommunityDTO);

    List<ReportBuildingDTO> sumByBuilding(ReportBuildingDTO reportBuildingDTO);

    List<ReportBuildingDTO> sumByBuildingByDate(ReportBuildingDTO reportBuildingDTO);



    List<ReportRoomDTO> sumByRoom(ReportRoomDTO reportRoomDTO);

    List<ReportRoomDTO> sumByRoomByDate(ReportRoomDTO reportRoomDTO);



    List<ReportPersonDTO> sumFeeReceiveByCashier(ReportPersonDTO reportPersonDTO);

   List<ReportPersonDTO> sumFeeRechargeByCashier(ReportPersonDTO reportPersonDTO);

    Double sumTotalFee(ReportTotalDTO reportTotalDTO);

    Double sumFeeReceived(ReportTotalDTO reportTotalDTO);

    List<ReportFeeChargeDTO> sumFeeChargeByCommunity(ReportFeeChargeDTO reportFeeChargeDTO);


    //细化欠费统计表，按楼栋细化统计表
    List<ReportFeeChargeBuildingDTO> sumFeeChargeByBuilding(ReportFeeChargeBuildingDTO reportFeeChargeBulidingDTO);
    //细化欠费统计表，按月细化统计表
    List<ReportFeeChargeBuildingMonthDTO> sumFeeChargeByBuildingMonth(ReportFeeChargeBuildingMonthDTO reportFeeChargeBulidingMonthDTO);
    //通一欠费统计表，按月细化统计
    List<ReportFeeChargeRoomDTO>sumFeeChargeByRoom(ReportFeeChargeRoomDTO reportFeeChargeRoomDTO);

    //用于下拉列表
    List<FeeYear>findYearList(FeeYear feeYear);
}